package com.bls.productmall.service.Impl;

import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bls.productmall.entity.User;
import com.bls.productmall.mapper.UserMapper;
import com.bls.productmall.service.UserService;
import com.bls.productmall.vo.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

@Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    @Resource
    private UserMapper userMapper;

    /**
    * 管理员登录
    * 只有admin和bls才能登录
    * */
    @Override
    public R adminLogin(User user) {
        // 创建查询包装器来根据用户名查询用户
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name", user.getName());
        User user1 = userMapper.selectOne(queryWrapper);
        System.out.println("根据name查询到：" + user1);
        if(user1 == null){
            log.info("用户不存在");
            return R.error().setMessage("用户不存在");
        }
        // 获取查询到的用户的密码
        String password1 = user1.getPassword();
        System.out.println("加密前：" + user.getPassword());
        // 加密前端传过来的password和上面的password1对比
        String password = SecureUtil.md5(user.getPassword());
        System.out.println("加密后：" + password);
        user.setId(user1.getId());
        // 判断该用户是不是管理员用户
        if(user1.getName().equals("admin")||user1.getName().equals("bls")){
            if(password1.equalsIgnoreCase(password)){  //字符串不分大小写比较
                log.info(user.getName()+"登录成功");
                return R.ok().setMessage("管理员登录成功").data("user",user);
            }
            log.info("管理员密码错误");
            return R.error().setMessage("管理员密码错误").data("user",user);
        }
        return R.error().setMessage("非管理员账户").data("user",user);
    }
}
